package practice.practice_3_9;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @AUTHOR LYF
 * @DATE 2022/3/9
 * @VERSION 1.0
 * @DESC
 * String的基础操作
 * 1.String的基本概念：
 * （1）常量池、new ..
 * (2)equals,StringBuffer,
 * (3)API
 *2. 题目（联系与否考虑）
 * （1）子串问题
 * （2）序列问题
 * （3）匹配问题
 *3. 掌握的基础点
 * (1)常用API(length(),charAt(),split,substring())
 * (2)正则表达式
TODO regex学习，matcher的灵活使用
 */
public class StringDemo {
    public static void main(String[] args) {
        String str1 = "hello, I am lyf 1231";
        String str2 = new String(str1);
        String str3 = str1;
        String str4 = "hello, I am lyf";
        {
            System.out.println();
        }

        // 1.equals
        System.out.println(str1.equals(str2)+";"+str1.equals(str3));

        // 2.子串截取
        str1.substring(0,2);
        // 3.contains     indexOf()  包含，查找位置
        System.out.println(str1.contains("lyf"));
        // 4.replace替换 //原有的值不变！---还可以根据regex进行替换
        String replaceStr = str1.replace("lyf","skx");
        System.out.println("替换之后:"+replaceStr+";"+str1);

        // Pattern.compile(regex).matcher(this).replaceAll(replacement);
        String regex = "\\d{1}";
        System.out.println(str1.replaceAll(regex,"数字"));

        // 完全等于匹配
        Boolean flag = str1.matches("\\*\\d{1,5}\\*");
        System.out.println(flag);

        // 模式
        Pattern pattern = Pattern.compile(regex);
        // 匹配
        Matcher matcher = pattern.matcher("hello");
        //matcher.find(),start()


        // StringBuffer
        StringBuilder stringBuilder = new StringBuilder(str1);
        System.out.println("sb:"+stringBuilder.toString());
        StringBuffer stringBuffer = new StringBuffer(str1);//线程安全，加了synchronized

        stringBuffer.reverse();
        stringBuffer.insert(2,"kkk");

    }
}
